1. Field of the Invention
The present invention relates to a bridge device for connecting together, for example, Local Area Networks (hereinafter referred to simply as "LANs").
2. Description of Related Art
Conventionally, nodes (i.e. computers or printers, etc.) connected together on a network have often all been connected to a central location known as a "hub". These hubs originally often comprised merely a wiring panel or block where wires from each individual node were gathered together. A data packet from one node on the network to another node on the network would then pass through this passive hub.
As networks have become more comprehensive, however, these passive hubs have been replaced by active hubs or repeaters that re-clock and amplify signals for the data packets before sending the packets to other parts of the network. A repeater, or when the repeater has a number of ports, a multiport repeater, handles data packets in a conference call manner, where every node on the network hears the conversation of every other node on the network. Therefore, on a shared network the available bandwidth is shared between all of the nodes on the network with available bandwidth being reduced for each node as new nodes are added to the network. The widespread use of personal computers has therefore resulted in ever-increasing strain being placed on the bandwidth of existing networks. This also results in an increased number of collisions and reduced throughput.
Packet-switching hubs (hereinafter referred to for simplicity as "switching hubs") have therefore been introduced in recent years to combat this problem. A switching hub is an active device that looks at each network packet to determine its destination and then forwards each packet to the appropriate port. The packet is then only seen by its destination port. Switching hubs are therefore particularly useful for isolating traffic on one branch of a network from that of another branch. A switching hub also increases the overall bandwidth of the network when a plurality of nodes are communicating at the same time, so the full network bandwidth can be occupied and stability is improved as data is only sent to the required destination.
A switching hub operates by receiving a data packet, translating the destination address of the data packet, and transmitting the data packet to the port to which the destination node is connected. In order to do this, Media Access Control (hereinafter referred to simply as "MAC") addresses of nodes connected to each port have to be known. This is generally carried out using the same method as for a learning bridge, i.e. a node address table for each node connected is made based on the send addresses of data packets received from each port. Here, data packets of unknown destinations and data packets having broadcast addresses are sent to all ports.
Methods for hub switching are generally divided into the "on the fly" method (also referred to as the "cut-through" method), the "store and forward" method and the "fragment-free" method.
In the on the fly method, a destination address field exists at the head of a data packet. The switching hub then receives the destination field first and a field check sequence field last. Then, just the destination field that is received first is looked at, the destination port of the data packet is determined and the data packet is soon sent. The time delay from receiving the data packet to transmitting the data packet is therefore small. The on the fly method is therefore closer to the operation of a conventional Hub than a bridge device (to be described later) and therefore has the same following three problems, i.e. a data packet is discarded when its output port is already being used, error data packets are transmitted, and transmission is not possible with networks of differing speeds. The store and forward method was therefore introduced to resolve these problems.
The store and forward method is, in effect, that of a bridge device and is similar to the system architecture commonly employed in electronic mail systems. Here, received data packets are temporarily stored in memory at a shared check area where the received data packets are checked and data packets with errors are discarded. The output ports of correct data packets are then determined from the destination addresses of these data packets and outputted when the destination output port becomes free. This temporary storing means that the delay between receipt and transmission is large (as in, for example, electronic mail systems) but the aforementioned three problems with the on the fly method are resolved.
In the fragment-free method, for example, a switching process is carried out where the packet is cut at 64 bytes, so that only short packets are detected.
Further, in a client-server system, there is the problem on shared mediums that bottlenecks occur when a large number of clients attempt to access a single server simultaneously. A method known as a "fat pipe" or "big pipe" method where the server port is given a sufficiently large bandwidth so that client traffic gathering at the server can be processed has been put forward to solve this problem, although this approach has been hindered by the fact that packet processing is usually carried out by software and is therefore relatively slow.
In addition to being used as a packet switcher within an individual LAN, this kind of packet switching device can also be applied to bridge devices by utilizing filtering functions and port characteristic functions to prevent collisions.
A bridge device is a transmission device for carrying out bidirectional data transmission across a plurality of networks connected via ports.
These bridge devices are usually realized by conventional software processes as in the well-known typical configuration shown in FIG. 1.
The basic configuration of the bridge device comprises a MAC packet-switching processor 1 realized by software on a processor system and a common memory 2. The MAC packet-switching processor I and the common memory 2 are connected together via interfaces 3 and 4 and a bus 5. Interfaces #1 to #n are connected to the bus 5 and MAC layers (for each network are connected together via the interfaces 6. Here, #1 to #n in FIG. 1 indicate numbers given to each port and shall be referred to as "port numbers" in the following. Different physical layers and LAN ports are connected to each MAC layer but, as this is common knowledge in the network field, a description of these differing physical layers and LAN ports is omitted here.
Next, a procedure for a MAC packet-switching process using a bridge device of this configuration is described.
MAC packets from the MAC layers received by the bridge device are temporarily stored in the common memory 2. When stored, these MAC packets are read at the MAC packet-switching processor I and MAC packet-switching is executed using prescribed software processes.
The packet-switching process consists of two processes, namely, a learning process and a packet-forwarding process.
The learning process is a process for recording or updating a filtering table (a table holding pairs of MAC addresses and port numbers) from a source address (SA: Source Address) in a MAC header of a MAC packet and a port number given to the port the MAC packet was inputted at.
On the other hand, the packet forwarding process is a process where the port to which the MAC packet is to be outputted is selected based on a destination address (DA: Destination Address) in the MAC header of the MAC packet and the filtering table.
In this packet forwarding process, the port to which an inputted MAC packet is sent is decided and the MAC packet is sent based on one of the following three cases.
(i) when an output destination destination port obtained by retrieving a port number corresponding to the destination address DA is a port other than the port receiving the aforementioned MAC packet, the MAC packet is sent to the MAC layer corresponding to the searched port. PA1 (ii) when the port of the port number corresponding to the destination address is the actual port that received the MAC packet, the MAC packet is not transmitted (discarded). PA1 (iii) when the destination address is all 1's (broadcast address) or is not yet recorded in the filtering table, the MAC packet is transmitted to the MAC layers of all of the ports other than the port that received the MAC packet.
However, a high-speed switching operation is limited because in this bridge device, MAC packet transmission destinations are successively decided by software processes operating on a processor system.
Further, with this bridge device, the delay time while writing to the common memory 2 is substantial because the transmission destination is decided after the inputted MAC packet is temporarily stored in the common memory 2 with the MAC packet then being read to the newly decided transmission destination.